#ifndef TELAPRINCIPAL_H_
#define TELAPRINCIPAL_H_

#include "Tela.h"

/**
 * @class TelaPrincipal TelaPrincipal.h "src/console/TelaPrincipal.h"
 * @brief Classe para controle dos menus principais do sistema.
 * A classe controla o menu principal que o usuário logado pode acessar, \n
 * verificando de acordo com o nível do usuário.
*/
class TelaPrincipal : public Tela
{

private:

	/**
	 * Opção selecionada pelo usuário, utilizada no SubmeteDado().
	 */
	char choice;

public:

	/**
	 * @fn TelaPrincipal(Controlador* sys = NULL)
	 * @brief Construtor Principal da entidade
	 * Esse método cria uma instancia da TelaPrincipal, carregando o Controlador.
	*/
	TelaPrincipal(Controlador* sys = NULL);

	/**
	 * @fn virtual ~TelaPrincipal()
	 * @brief Destrutor da entidade
	 * Utilizado para liberar espaço na mémoria, eliminando a instancia
	 * do objeto criado.
	*/
	virtual ~TelaPrincipal();

	/**
	 * @fn virtual void Show()
	 * @brief Método para mostrar a lista dos menus principais.
	 * O método imprime um menu de opções para o usuário.
	*/
	virtual void Show();

	/**
	 * @fn virtual void GetOpcao()
	 * @brief  Método para obter a opcao selecionada.
	 * O usuário seleciona uma opcao que deve ser armazenada e utilizada pelo SubmeteDado.
	*/
	virtual void GetOpcao();

	/**
	 * @fn virtual void SubmeteDado()
	 * @brief Método para verificar qual a ação a ser realizada.
	 * O método aciona uma ação de acordo com a opção selecionada.
	*/
	virtual void SubmeteDado();

};

#endif /*TELAPRINCIPAL_H_*/
